/************************************************************************/
/* Resources                                                            */
/************************************************************************/
#include "Resources/XMLDoc.h"

namespace TD_Resources {

   /************************************************************************/
   /* Private functions                                                    */
   /************************************************************************/


   /************************************************************************/
   /* Protected functions                                                  */
   /************************************************************************/


   /************************************************************************/
   /* Constructors				                                            */
   /************************************************************************/
   XMLDoc::XMLDoc() : Resource () {
      m_pXMLDoc = new TiXmlDocument();
   }


   XMLDoc::XMLDoc(const XMLDoc &rhs) {
      m_pXMLDoc = rhs.getXMLDoc();
   }


   XMLDoc & XMLDoc::operator=(const XMLDoc &rhs) {
      m_pXMLDoc = rhs.getXMLDoc();
      return(*this);
   }

   XMLDoc::XMLDoc(const string &resourceName) : Resource (resourceName){
      m_pXMLDoc = new TiXmlDocument(resourceName.c_str());
   }

   XMLDoc::~XMLDoc() {
      delete(m_pXMLDoc);
      m_pXMLDoc=NULL;
   }

   /************************************************************************/
   /* Functionalities                                                      */
   /************************************************************************/
   /**Should throw InvalidFile exception, instead of a boolean value!*/
   bool XMLDoc::loadFile() {
      return m_pXMLDoc->LoadFile();
   }

   bool XMLDoc::loadFile(const string &resourceName) {
      setName(resourceName);
      return m_pXMLDoc->LoadFile(resourceName.c_str());
   }
   TiXmlElement *XMLDoc::FirstChildElement(const char* name)
   {
      return m_pXMLDoc->FirstChildElement();
   }


}

